#ifndef _DANIEL_KERR_GLTIMER_H
#define _DANIEL_KERR_GLTIMER_H

#include "driver.h"

class Timer
{
	public:
		Timer()
		{
			paused=started=false;
			startTicks=pausedTicks=0;
		}

		void start()
		{
			started=true;
			paused=false;
			startTicks=SDL_GetTicks();   
		}

		void stop()
		{started = paused = false;}

		void pause()
		{
			if((started)&&(!paused))
			{
				paused=true;
				pausedTicks=SDL_GetTicks()-startTicks;
			}
		}

		void unpause()
		{
			if(paused)
			{
				paused=false;
				startTicks=SDL_GetTicks()-pausedTicks;
				pausedTicks=0;
			}
		}

		int get_ticks()
		{
			if(started==true)
			{
				if(paused==true)	{return pausedTicks;}
				else				{return SDL_GetTicks()-startTicks;}
			}
			return 0;
		}

		bool is_paused()	{return paused;}
		bool is_started()	{return started;}

	private:
		bool paused,started;
		int pausedTicks,startTicks;
};

#endif